QuickSightの週表示を月曜始まりにしてみた
はじめに
データアナリティクス事業本部 BIチームのkariyaです。
QuickSightで可視化する際に、週の始まりを月曜として表示できないか?というところからスタートし、試してみたことをまとめました。
使用データ
2022/12/1~2022/12/31の日付と、日ごとの売上金額が入ったデータを使用します。
週の区切り方を確認する
準備
デフォルトの週を確認するための計算フィールドを作成します。
年月日
曜日番号を示す計算フィールドを作成します。
extract("WD",{年月日})
曜日を示す計算フィールドを作成します。
ifelse( 曜日番号 = 1, "日", 曜日番号 = 2, "月", 曜日番号 = 3, "火", 曜日番号 = 4, "水", 曜日番号 = 5, "木", 曜日番号 = 6, "金", "土" )
これで準備ができました。
ピボットテーブルで見てみる
作成した計算フィールドと、年月日をピボットテーブルに配置します。
データ型が日付の場合、集計単位を選択できますので、ここでは週
とします。
各週に入っている日付と曜日を表示すると、週の最初の曜日が日曜となっています。
曜日、曜日番号、週を並べてみると、曜日番号1から7までが1つの週となり、曜日番号1が週の始めとなっていることがわかります。
月曜始まりにしてみる
同じ週の間は計算結果が同じになるように、例えば年月日が12/5~12/11に対してすべての結果が12/5となる計算フィールドを作成します。
ifelse( //日曜の場合:前週の月曜を出す extract("WD", {年月日}) = 1, addDateTime(-6, 'DD',{年月日}), //日曜以外の場合:その週の月曜を出す addDateTime(1, 'DD', truncDate("WK",{年月日})) )
作成した計算フィールドをピボットテーブルに配置すると、月曜が週の開始日として表示できました。
他にも試してみる
このように、一定の期間に対して同じ結果を出す計算フィールドを作成すると、日付を色々な単位で区切ることができます。
例えば、月の前半と後半に分けてみましょう。
ifelse( //1~15日の場合:前半にする extract('DD', {年月日}) < 16, "1.前半", //それ以外の場合:後半にする "2.後半" )
月の前半と後半を分けることができました。
上旬・中旬・下旬に分けることも可能です。
ifelse( //1~10日の場合:中旬にする extract('DD', {年月日}) < 11, "1.上旬", //11~20日の場合:中旬にする extract('DD', {年月日}) < 21, "2.中旬", //それ以外の場合:下旬にする "3.下旬" )
おわりに
日付の集計単位を変える方法について記載しました。 備忘録としてまとめましたが、どなたかのご参考になれば幸いです。